package cn.iocoder.yudao.module.erp.service.invoicechecklistitem;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.invoicechecklistitem.vo.InvoiceCheckListItemPageReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.invoicechecklistitem.vo.InvoiceCheckListItemSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.invoice.InvoiceDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.invoicechecklistitem.InvoiceCheckListItemDO;
import jakarta.validation.Valid;

import java.util.List;

/**
 * ERP 采购发票审核单项 Service 接口
 *
 * @author 源码
 */
public interface InvoiceCheckListItemService {

    /**
     * 创建ERP 采购发票审核单项
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createInvoiceCheckListItem(@Valid InvoiceCheckListItemSaveReqVO createReqVO);

    /**
     * 更新ERP 采购发票审核单项
     *
     * @param updateReqVO 更新信息
     */
    void updateInvoiceCheckListItem(@Valid InvoiceCheckListItemSaveReqVO updateReqVO);

    /**
     * 删除ERP 采购发票审核单项
     *
     * @param id 编号
     */
    void deleteInvoiceCheckListItem(Long id);

    /**
     * 获得ERP 采购发票审核单项
     *
     * @param id 编号
     * @return ERP 采购发票审核单项
     */
    InvoiceCheckListItemDO getInvoiceCheckListItem(Long id);

    /**
     * 获得ERP 采购发票审核单项分页
     *
     * @param pageReqVO 分页查询
     * @return ERP 采购发票审核单项分页
     */
    PageResult<InvoiceCheckListItemDO> getInvoiceCheckListItemPage(InvoiceCheckListItemPageReqVO pageReqVO);
    /**
     * 获得ERP 采购发票审核单项
     *
     * @return ERP 采购发票审核单项
     */
    List<InvoiceDO> getInvoiceCheckListItemByNumbers(List<String> numbers);
    /**
     * 查询整合单数量和总价格
     *
     */
    InvoiceDO getNumAndPrice(List<String> numbers);
}